From 8c2c327d34daa0d93f9865cbadb8642a7844dd95 Mon Sep 17 00:00:00 2001 From: Tim Janik Date: Fri, 26 Jan 2007 12:26:01 +0000 Subject: [PATCH] clamp cursor coordinates to window bounds (fix from Maemo Gtk). Fri Jan 26 13:07:07 2007 Tim Janik * gtk/gtkstyle.c (draw_insertion_cursor): clamp cursor coordinates to window bounds (fix from Maemo Gtk). svn path=/trunk/; revision=17217 --- ChangeLog | 5 +++++ gtk/gtkstyle.c | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/ChangeLog b/ChangeLog index eb27a33483..d4ee62567c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri Jan 26 13:07:07 2007 Tim Janik + + * gtk/gtkstyle.c (draw_insertion_cursor): clamp cursor coordinates to + window bounds (fix from Maemo Gtk). + 2007-01-26 Michael Natterer * gtk/gtkentrycompletion.c (gtk_entry_completion_insert_prefix): diff --git a/gtk/gtkstyle.c b/gtk/gtkstyle.c index 44b7d6eff7..a673e4fcfd 100644 --- a/gtk/gtkstyle.c +++ b/gtk/gtkstyle.c @@ -6677,6 +6677,7 @@ draw_insertion_cursor (GtkWidget *widget, gint i; gfloat cursor_aspect_ratio; gint offset; + gint window_width; /* When changing the shape or size of the cursor here, * propagate the changes to gtktextview.c:text_window_invalidate_cursors(). @@ -6693,6 +6694,13 @@ draw_insertion_cursor (GtkWidget *widget, else offset = stem_width - stem_width / 2; + gdk_drawable_get_size (widget->window, &window_width, NULL); + + if (location->x - offset < 0 && direction == GTK_TEXT_DIR_LTR) + location->x += ABS (location->x - offset); + else if (location->x + offset > window_width && direction == GTK_TEXT_DIR_RTL) + location->x -= location->x + offset - window_width; + for (i = 0; i < stem_width; i++) gdk_draw_line (drawable, gc, location->x + i - offset, location->y, -- 2.30.2